package com.EAIPClub.userdatamanager.service;

import com.api.POJO.UserDataManager.Data.User;
import com.api.POJO.UserDataManager.Data.UserGroup;
import com.api.POJO.UserDataManager.Data.UserPrivileges;
import com.api.POJO.UserDataManager.Result.UserDataReturnMsg;

/**
 * @Description :用户数据管理模块业务逻辑层接口
 * @Author :崔昌赫
 * @Date : 2021/10/10
 */
public interface UserDataService {
    UserDataReturnMsg findUserAllInfoByUid(String uid);
    UserDataReturnMsg findUserAllInfoByEmail(String email);
    
    UserDataReturnMsg findUserBaseInfoByUid(String uid);
    UserDataReturnMsg findUserBaseInfoByEmail(String email);
    
    UserDataReturnMsg findUserPrivilegesByUid(String uid);
    UserDataReturnMsg findUserPrivilegesByEmail(String email);
    
    UserDataReturnMsg findUserGroupByUid(String uid);
    UserDataReturnMsg findUserGroupByEmail(String email);
    
    UserDataReturnMsg updateUserAllInfoByUid(String uid,User user,UserPrivileges userPrivileges,UserGroup userGroup);
    UserDataReturnMsg updateUserAllInfoByEmail(String email,User user,UserPrivileges userPrivileges,UserGroup userGroup);
    
    UserDataReturnMsg updateUserBaseInfoByUid(String uid,User user);
    UserDataReturnMsg updateUserBaseInfoByEmail(String email,User user);
    
    UserDataReturnMsg updateUserPrivilegesByUid(String uid,UserPrivileges userPrivileges);
    UserDataReturnMsg updateUserPrivilegesByEmail(String email,UserPrivileges userPrivileges);
    
    UserDataReturnMsg updateUserGroupByUid(String uid,UserGroup userGroup);
    UserDataReturnMsg updateUserGroupByEmail(String email,UserGroup userGroup);
    
    UserDataReturnMsg addUserAllInfo(User user,UserPrivileges userPrivileges,UserGroup userGroup);
    
    UserDataReturnMsg addUserBaseInfo(User user);
    
    UserDataReturnMsg addUserPrivileges(UserPrivileges userPrivileges);

    UserDataReturnMsg addUserGroup(UserGroup userGroup);
    
    UserDataReturnMsg deleteUserAllInfoByUid(String uid);
    UserDataReturnMsg deleteUserAllInfoByEmail(String email);
    
    UserDataReturnMsg deleteUserBaseInfoByUid(String uid);
    UserDataReturnMsg deleteUserBaseInfoByEmail(String email);
    
    UserDataReturnMsg deleteUserPrivilegesByUid(String uid);
    UserDataReturnMsg deleteUserPrivilegesByEmail(String email);
    
    UserDataReturnMsg deleteUserGroupByUid(String uid);
    UserDataReturnMsg deleteUserGroupByEmail(String email);
}
